package com.come4loves.game.dataconfig.model;

import com.come4loves.core.dataconfig.ModelAdapter;
import com.come4loves.core.dataconfig.annotation.DataFile;
import com.come4loves.core.utils.Splitable;
import com.come4loves.game.module.card.constant.CardType;
import com.come4loves.game.module.card.constant.Quality;

@DataFile(fileName = "EquipCardConfig")
public class EquipCardConfig extends CardConfig implements ModelAdapter {

	/**
	 * 卡牌id
	 */
	private int id;

	/**
	 * 类型id
	 */
	private int tid;

	/**
	 * 等级
	 */
	private int level;

	/**
	 * 标记是单位卡还是召唤卡 1 单位卡 0 召唤卡（可以被召唤出场,可以当单位卡用 但是牌库中无法获得）
	 * 
	 */
	private int type;

	/**
	 * 武将相随
	 */
	private int unitlink;
	/**
	 * 1.獨有 0.非獨有
	 */
	private int unique;

	/**
	 * 职业
	 */
	private int occupation;

	/**
	 * 国家
	 */
	private int nation;

	/**
	 * 牌组中数量限制
	 */
	private int limit;

	/**
	 * 法力消耗
	 * 
	 */
	private int cost;

	private int attack;

	private int hitpoint;

	private int speed;

	private int prior;

	private int operite;

	private int quality;

	private String skill;

	private int version0;
	
	
	private String skillevent;
	private String skillconductionnum;
	private String skillaction;
	private String skillactionnum;
	private String casttarget;
	private String aitarget;

	@Override
	public void initialize() {

	}

	@Override
	public int getId() {
		return id;
	}

	public int getVersion0() {
		return version0;
	}

	public int getTid() {
		return tid;
	}

	@Override
	public int getLevel() {
		return level;
	}

	public int getType() {
		return type;
	}

	public int getUnitlink() {
		return unitlink;
	}

	public int getUnique() {
		return unique;
	}

	public int getOccupation() {
		return occupation;
	}

	public int getNation() {
		return nation;
	}

	@Override
	public int getLimit() {
		return limit;
	}

	public int getCost() {
		return cost;
	}

	public int getAttack() {
		return attack;
	}

	public int getHitpoint() {
		return hitpoint;
	}

	public int getSpeed() {
		return speed;
	}

	public int getPrior() {
		return prior;
	}

	public int getOperite() {
		return operite;
	}

	public int getQuality() {
		return quality;
	}

	public String getSkill() {
		return skill;
	}

	@Override
	public String toString() {
		StringBuffer sBuffer = new StringBuffer(8);
		sBuffer.append(id).append(Splitable.BETWEEN_DOT);
		sBuffer.append(level).append(Splitable.BETWEEN_DOT);
		sBuffer.append(CardType.EQUIP.ordinal()).append(Splitable.BETWEEN_DOT);
		sBuffer.append(limit).append(Splitable.BETWEEN_DOT);
		sBuffer.append(3);
		return sBuffer.toString();
	}

	@Override
	public CardType getCardType() {
		return CardType.EQUIP;
	}

	@Override
	public Quality getQualityType() {
		return Quality.getQualityType(this.quality);
	}

	@Override
	public String getSkillevent() {
		return skillevent;
	}

	@Override
	public String getSkillconductionnum() {
		return skillconductionnum;
	}

	@Override
	public String getSkillaction() {
		return skillaction;
	}

	@Override
	public String getSkillactionnum() {
		return skillactionnum;
	}

	@Override
	public String getCasttarget() {
		return casttarget;
	}
	
	@Override
	public String getAItarget() {
		return this.aitarget;
	}
	
}